package com.sjd.mall.service.account;

import com.sjd.common.core.domain.AjaxResult;
import com.sjd.common.core.page.TableDataInfo;
import com.sjd.mall.domain.SjdAccountGlodenBeanDetailsDO;
import com.sjd.mall.domain.dto.account.AccountRechargeQueryResponseDTO;
import com.sjd.mall.domain.dto.account.AccountRechargeRequestDTO;
import com.sjd.mall.domain.dto.account.BasePageHelperDTO;
import com.sjd.mall.domain.dto.account.CreateRechargeOrderRequestDTO;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @ProjectName: sjd
 * @Package: com.sjd.mall.service.account
 * @ClassName: RechatgeOrderService
 * @Author: genglong
 * @Description: 充值接口
 * @Date: 2022/1/12 15:52
 * @Version: 1.0
 */
public interface AccountGoldenBeanService {

    /**
     * 创建充值订单
     * @param requestDTO
     * @return
     */
    SjdAccountGlodenBeanDetailsDO createOrder(CreateRechargeOrderRequestDTO requestDTO);

    /**
     * 消费/退款订单
     * @param orderType {@link com.sjd.common.constant.GoldenBeanConstants}
     * @param goldenBeanNum
     * @param remark
     * @return
     */
    AjaxResult createConsumeOrRefoundOrder(String orderType,Integer goldenBeanNum,String remark);

    /**
     * 充值
     * @param requestDTO
     * @return
     */
    AjaxResult recharge(AccountRechargeRequestDTO requestDTO);

    /**
     * 支付回调通知
     * @param request
     */
    String payResultNotify(HttpServletRequest request);

    /**
     * 查询金豆明细记录
     * @return
     */
    List<AccountRechargeQueryResponseDTO> queryGoldenBeanOderList();
}
